desemfandomcom-20200213-history
CS607 January 2015
Q1) a) '''CHAOS is not covered this year. '''b) Composite state, not submachine state has entry//exit entry works when come in In a composite state the state starts in initial state. The 22 has no entry but exit. As soon as we go to 21 we go to entry. There is not enough information on the diagram to answer the question. * State 1 * c * e * State2 * q * State 21 * z * There is a composite state here, what does it do? No information! * w * Now where does it go? Exit or 22? No condition. * If 22 * There is also a composite state here, what does it do? No information! * 3 * 6 * z * w * And now? 22 or exit? * If exit: * r * ceqz there is a composite here, what does it do? w now where? 36z now where? wr Regarding the shallow history and deep history we can say: H: Shallow history. It can save anything from the same level. If when exits it was on state 2.1, save state 2. If it was a deep history you would save state 2.1. Comparison of Shallow and Deep histories video source: ☀https://youtu.be/DZ8o8Cgc7JU c) As proxy is not covered this year I have solved for Adapter and Facade instead of Proxy and Facade. Brief answer: Adapter and facade both provide interfaces. However, the intent is different. The adapter aims to convert an interface of a class to an interface that the client is expecting. The facade just provides a simple interface to the current subsystem. Long answer: Both adapter and facade provide an interface to the client programmer. However, the intent is different. An adapter converts an interface of a class to an interface that the client programmer is expecting. For instance, if we have a Turkey class (the adaptee) that need to work as a Duck (the target) we can provide a TurkeyToDuck adapter (the adapter). The client will never know about the adaptee. This can be performed as a composition such that the adapter delegates the functions to the adaptee or as multiple inheritance such that the adapter inherits its methods from the target and the adaptee. On the other hand, the intent of the Facade is different. It just aims to provide a simplified interface to the current available classes decoupling the client implementation from any one subsystem. However, if the client wants to access any of these classes it still can. d) Image Link Q2) a) The Agile is characterised by an iterative and evolutionary development process. It is iterative because it divides the project in time-boxed smaller projects that are developed during the time. It is evolutionary because the requirements, the plans and the design evolve through the iterations and feedback. The software is build incrementally instead of trying to deliver it all at once in the end. Agile does not mean avoiding modelling but their purpose is to support understanding and communication rather than documentation. Agile focus on adaptive planning and the change of requirements is expected. Advantages: Early working software Not prone to errors Disadvantages: Lack of documents Lack of overall design Can’t be applied to large teams b) As it is a new company and it is online it should be better to approach with interviews, questionnaires or brainstorm sessions (as JAD) rather than trying to observe their current work (as STROBE and Ethnographic study). As the company is new they probably have more time to communicate. So, if focusing on just two techniques the best options would be the interview and the brainstorm because there is direct contact with the stakeholders (users, executives) so it is easier to get what they really want. The questionnaires wouldn't be a good option because they are prone to problems as the halo effect, leniency and central tendency. //Further comments The interview questions can cover bipolar, closed or open ending questions. The questionnaires could cover scale and white space questions. The JAD approach would have brainstorm sessions with the stakeholders, analysts and executives. The halo effect is the effect of people being influenced by previous answers or previous questions. The central tendency is the tendency of a large number of answers getting near the central answer (like in a scale of 0-100 they get in 50). Q3) ''' '''a) '''Both JAD and STROBE are techniques for gathering the information about the system as well as its problems to specify solutions for these problems. In the JAD approach the developer and the users are put together to brainstorm. In the STROBE approach the developer observes the users using the software. One of the advantages of the JAD approach is that it is possible to have a deep knowledge of the system because the users take part of the brainstorm. However, this can lead to interruption of some activities of the customer company. In addition, sometimes it is not possible to gather the company employees together because they are far. For the case of an international bank they can be located in different parts of the globe. (But this could be solved if the meeting was made through video chat applications as Skype). The advantage of the STROBE approach is that it does not affect the company activities. However, it does not gather all the possible information because it is about observing and not communicating with the users. In addition, a lot of data is gathered, even more when talking about an international bank, which can turn the data analysis costly. '''b) Image Link Q4) a) Key Issues # What information to study? What are the sources of information? ## # What methods to use to gathering the information needed? ## You can interview the users, do questionnaires, brainstorm, observe. It all depends on the users availability and the kind of information you would like to elicit. For instance, interviews can be useful to get an overview of the system from the experts point of view. # Where and who can supply the required information? ## You may not have access to all users or you may not have access to the company place, or the users may not have access to your company grounds. All of these can influence the choice of the gathering technique. In addition, a CEO can provide different information than a manager would provide as all of them use the system but have a different view of the system. So, it is necessary to know who is the best person to gather the required information. b) The four steps are: * Elicitation ** Requirements are gathered through consultation with the stakeholders. For instance, through interviews performed with a current software users. * Analysis and Negotiation ** Requirements are analysed and the conflicts are solved by negotiating with clients and team members. For instance, the answers in the elicitation step are checked for consistency, the most important requirements are identified and the inconsistencies are negotiated with the stakeholders which may require further elicitation. * Documentation ** A requirements documentation is produced. For instance, the team write a Software Requirements Specification document based on the IEEE 830, or just use case texts, or diagrams, or user stories, etc. * Validation ** The requirements document is verified for consistency and completeness. The phases are repeated iteratively and interleaved with each other and with s/w development activies. __NOINDEX__